package main

import (
	"bufio"
	"fmt"
	"log"
	"net"
	"os"
	"strings"
)

func main() {
	fmt.Println("udp client start")
	// 1 创建客户端
	listen, err := net.DialUDP("udp", nil, &net.UDPAddr{
		IP:   net.IPv4(0, 0, 0, 0),
		Port: 8889,
	})

	if err != nil {
		fmt.Println("err:", err)
		return
	}
	// 2 关闭连接
	defer listen.Close()

	// 3 发送数据
	reader := bufio.NewReader(os.Stdin)
	inputInfo, _ := reader.ReadString('\n')
	inputInfo = strings.Trim(inputInfo, "\r\n")
	_, err = listen.Write([]byte(inputInfo))
	if err != nil {
		fmt.Println("err:", err)
		return
	}

	// 4 接收数据
	var acceptInfo [1024]byte
	n, addr, err := listen.ReadFromUDP(acceptInfo[:])
	if err != nil {
		fmt.Println("err:", err)
		return
	}
	log.Printf("接收到服务器%s的数据：%s", addr.String(), string(acceptInfo[:n]))
}
